<?php
/**
 * @package		orcamento	
 * @desc		Componente voltado to listar produtor e entreoutros
 * @author	    Lucas Emmanoel Araujo Machado (lucasemmanoel@gmail.com).
 * @since		2011-04-10	
 * @abstract	Model do Componente
 */

// Não permite o acesso direto ao arquivo.
defined( '_JEXEC' ) or die( 'Restricted access' );

// Recursos Joomla! para trabalhar com models.
jimport( 'joomla.application.component.model' );

class OrcamentosModelRelatorio extends JModel
{
	/*
	 * Constructor (recupera o valor do ID)
	 */
	function __construct( )
	{
		parent::__construct( );
	}
	function getRegistrosClientes( $cid = null,$data = null , $tipoCliente = null ){
		if($data != null){
			foreach ($data as $dados=>$valor){
				$valor = implode('-', array_reverse(explode('/',$valor)));
				$data->$dados = $valor;
			}
		}
		if($cid == null){
			$query	= 'SELECT * FROM #__orcamento_cliente';
			$query .= " WHERE dataInscricao BETWEEN '{$data->dataInicio}' AND '{$data->dataFim}' ";
		}
		else
			$query	= 'SELECT * FROM #__orcamento_cliente WHERE id = '.$cid;
		if( $tipoCliente != null){
			$query .= " AND tipo = {$tipoCliente} ";
		}
		$this->_db->setQuery( $query );
		$data = $this->_db->loadObjectList();
		return $data;
	}
	function contaRegistrosClientesTipos($data = null , $tipoCliente = null){
		foreach ($data as $dados=>$valor){
			$valor = implode('-', array_reverse(explode('/',$valor)));
			$data->$dados = $valor;
		}
		$query	 =	'SELECT tipo, count(id) as numTipo FROM #__orcamento_cliente ';
		$query .= " WHERE dataInscricao BETWEEN '{$data->dataInicio}' AND '{$data->dataFim}' ";
		if( $tipoCliente != null){
			$query .= " AND tipo = {$tipoCliente} ";
		}
		$query .= ' GROUP BY tipo ';
		$this->_db->setQuery( $query );
		$data = $this->_db->loadObjectList();
		return $data;
	}
	function datasClientes(){
		$query	 =	'SELECT min(dataInscricao) as dataInicio, max(dataInscricao) as dataFim FROM #__orcamento_cliente';
		$this->_db->setQuery( $query );
		$data = $this->_db->loadObject();
		foreach ($data as $dados=>$valor){
			$valor = implode('/', array_reverse(explode('-',$valor)));
			$data->$dados = $valor;
		}
		return $data;
	}
	function totalRegistros( $data = null , $tipoCliente = null ){
		foreach ($data as $dados=>$valor){
			$valor = implode('-', array_reverse(explode('/',$valor)));
			$data->$dados = $valor;
		}
		$query = 'SELECT count(id) FROM #__orcamento_cliente';
		$query .= " WHERE dataInscricao BETWEEN '{$data->dataInicio}' AND '{$data->dataFim}' ";
		if( $tipoCliente != null){
			$query .= " AND tipo = {$tipoCliente} ";
		}
		$this->_db->setQuery( $query );
		$restultado = $this->_db->loadResult();
		return $restultado;
	}
	function relatorioAcesso(){
		$data = date('Y-m-d');
		$data = explode('-',$data);
		$ano = $data[0];
		$mes = $data[1];
		$semestre = $mes - 6;
		$query = "SELECT c.tipo, count(c.id) as numTipo FROM #__orcamento_cliente AS c ";
		$query .= " INNER JOIN #__orcamento_acesso as a ON a.idUser = c.idUser ";
		$query .= " WHERE data LIKE '{$ano}-{$mes}-%' ";
		$this->_db->setQuery( $query );
		$obj->mesAtual = $this->_db->loadObjectList();
		
		$query = "SELECT c.tipo, count(c.id) as numTipo FROM #__orcamento_cliente AS c ";
		$query .= " INNER JOIN #__orcamento_acesso as a ON a.idUser = c.idUser ";
		$query .= " WHERE data BETWEEN '{$ano}-{$semestre}-01' AND  '{$ano}-{$mes}-31'";
		$this->_db->setQuery( $query );
		$obj->semestre = $this->_db->loadObjectList();
		
		$query = "SELECT c.tipo, count(c.id) as numTipo FROM #__orcamento_cliente AS c ";
		$query .= " INNER JOIN #__orcamento_acesso as a ON a.idUser = c.idUser ";
		$query .= " WHERE data LIKE '2011-%' ";
		$this->_db->setQuery( $query );
		$obj->ano = $this->_db->loadObjectList();
		echo JUtility::dump($obj);
		return $obj;
	}
}
